<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Karamelo: Domain Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js?config=TeX-MML-AM_CHTML/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="karamelodoxy.css" rel="stylesheet" type="text/css">
<!--  -->
<script type="text/javascript" src="karamelo_navtree_hacks.js"></script>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><a href="http://www.karamelo.org"><img alt="Logo" src="Karamelo_logo.png"/></a></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname"><a href="http://www.karamelo.org">Karamelo</a>
   &#160;<span id="projectnumber">714599e9</span>
   </div>
   <div id="projectbrief">Parallel Material Point Method Simulator</div>
  </td>
   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
</td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classDomain.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="classDomain-members.html">List of all members</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a>  </div>
  <div class="headertitle">
<div class="title">Domain Class Reference</div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Stores the dimension and geometrical aspects of the simulation box.</p>
<p>Stores the simulation dimensions (i.e. 1D, 2D or 3D), the simulation box geometry, the list of the user defined geometric regions and solids, as well as the background grid if updated Lagrangian is used. </p>
</div><div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for Domain:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="classDomain__inherit__graph.png" border="0" usemap="#Domain_inherit__map" alt="Inheritance graph"/></div>
<map name="Domain_inherit__map" id="Domain_inherit__map">
<area shape="rect" id="node2" href="classPointers.html" title="{Pointers\n|# domain\l# error\l# group\l# infile\l# input\l# logfile\l# material\l# memory\l# modify\l# mpm\l# output\l# universe\l# update\l# wlogfile\l|+ Pointers()\l+ ~Pointers()\l}" alt="" coords="59,5,158,288"/>
</map>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a00fee929169dd75370ff3ae78b00ec18"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDomain.html#a00fee929169dd75370ff3ae78b00ec18">add_region</a> (vector&lt; string &gt;)</td></tr>
<tr class="memdesc:a00fee929169dd75370ff3ae78b00ec18"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new region.  <a href="#a00fee929169dd75370ff3ae78b00ec18">More...</a><br /></td></tr>
<tr class="separator:a00fee929169dd75370ff3ae78b00ec18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af69b06bb2cf2b9adf2a87d719463b303"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDomain.html#af69b06bb2cf2b9adf2a87d719463b303">add_solid</a> (vector&lt; string &gt;)</td></tr>
<tr class="memdesc:af69b06bb2cf2b9adf2a87d719463b303"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new solid.  <a href="#af69b06bb2cf2b9adf2a87d719463b303">More...</a><br /></td></tr>
<tr class="separator:af69b06bb2cf2b9adf2a87d719463b303"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abeca29e90f94a7138c9d3b5478ef6bfa"><td class="memItemLeft" align="right" valign="top"><a id="abeca29e90f94a7138c9d3b5478ef6bfa"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDomain.html#abeca29e90f94a7138c9d3b5478ef6bfa">create_domain</a> (vector&lt; string &gt;)</td></tr>
<tr class="memdesc:abeca29e90f94a7138c9d3b5478ef6bfa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deprecated function. <br /></td></tr>
<tr class="separator:abeca29e90f94a7138c9d3b5478ef6bfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1387a468fd39343c0f149688faa0a13a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDomain.html#a1387a468fd39343c0f149688faa0a13a">Domain</a> (class <a class="el" href="classMPM.html">MPM</a> *)</td></tr>
<tr class="memdesc:a1387a468fd39343c0f149688faa0a13a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creator.  <a href="#a1387a468fd39343c0f149688faa0a13a">More...</a><br /></td></tr>
<tr class="separator:a1387a468fd39343c0f149688faa0a13a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0728a58f50841aac68f5870e1e9a2162"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDomain.html#a0728a58f50841aac68f5870e1e9a2162">find_region</a> (string)</td></tr>
<tr class="memdesc:a0728a58f50841aac68f5870e1e9a2162"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finds the ID of a region.  <a href="#a0728a58f50841aac68f5870e1e9a2162">More...</a><br /></td></tr>
<tr class="separator:a0728a58f50841aac68f5870e1e9a2162"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aadf91a0475543e41a080e57e6fc3f172"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDomain.html#aadf91a0475543e41a080e57e6fc3f172">find_solid</a> (string)</td></tr>
<tr class="memdesc:aadf91a0475543e41a080e57e6fc3f172"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finds the ID of a solid.  <a href="#aadf91a0475543e41a080e57e6fc3f172">More...</a><br /></td></tr>
<tr class="separator:aadf91a0475543e41a080e57e6fc3f172"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38d1a6ff0bfa855944be7e626dcb736f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDomain.html#a38d1a6ff0bfa855944be7e626dcb736f">inside</a> (Eigen::Vector3d)</td></tr>
<tr class="separator:a38d1a6ff0bfa855944be7e626dcb736f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a159a33a65aa69f795da9b16314a2f1f8"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDomain.html#a159a33a65aa69f795da9b16314a2f1f8">inside_subdomain</a> (double, double, double)</td></tr>
<tr class="memdesc:a159a33a65aa69f795da9b16314a2f1f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if the set of coordinates lies in the simulation domain.  <a href="#a159a33a65aa69f795da9b16314a2f1f8">More...</a><br /></td></tr>
<tr class="separator:a159a33a65aa69f795da9b16314a2f1f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6a8b8c9bdd38f2327648b376d66ff93"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDomain.html#ac6a8b8c9bdd38f2327648b376d66ff93">inside_subdomain_extended</a> (double, double, double, double)</td></tr>
<tr class="memdesc:ac6a8b8c9bdd38f2327648b376d66ff93"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if the set of coordinates lies in this proc sub-domain.  <a href="#ac6a8b8c9bdd38f2327648b376d66ff93">More...</a><br /></td></tr>
<tr class="separator:ac6a8b8c9bdd38f2327648b376d66ff93"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5bbee1320a6a46cf71e9fc61f6154eee"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDomain.html#a5bbee1320a6a46cf71e9fc61f6154eee">set_axisymmetric</a> (vector&lt; string &gt;)</td></tr>
<tr class="memdesc:a5bbee1320a6a46cf71e9fc61f6154eee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when user calls <a class="el" href="classDomain.html#ae6c6c4c2dbc702b2717c3e7a3be83d04" title="true if axisymmetric, false otherwise ">axisymmetric()</a>  <a href="#a5bbee1320a6a46cf71e9fc61f6154eee">More...</a><br /></td></tr>
<tr class="separator:a5bbee1320a6a46cf71e9fc61f6154eee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2aa4da2d74f36cdcc6c045c220d9b44f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDomain.html#a2aa4da2d74f36cdcc6c045c220d9b44f">set_dimension</a> (vector&lt; string &gt;)</td></tr>
<tr class="memdesc:a2aa4da2d74f36cdcc6c045c220d9b44f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when user calls <a class="el" href="classDomain.html#a12bbbd0b6073ba888dc18b5cc77bcd59" title="1 == 1D, 2 == 2d, 3 == 3d ">dimension()</a>  <a href="#a2aa4da2d74f36cdcc6c045c220d9b44f">More...</a><br /></td></tr>
<tr class="separator:a2aa4da2d74f36cdcc6c045c220d9b44f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b4a7134f0e0b9a1cc7653c837ca390b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDomain.html#a0b4a7134f0e0b9a1cc7653c837ca390b">set_local_box</a> ()</td></tr>
<tr class="memdesc:a0b4a7134f0e0b9a1cc7653c837ca390b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine the boundaries of this proc subdomain.  <a href="#a0b4a7134f0e0b9a1cc7653c837ca390b">More...</a><br /></td></tr>
<tr class="separator:a0b4a7134f0e0b9a1cc7653c837ca390b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29cec9afb2e54c810ba1f3c1a49543a8"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDomain.html#a29cec9afb2e54c810ba1f3c1a49543a8">~Domain</a> ()</td></tr>
<tr class="memdesc:a29cec9afb2e54c810ba1f3c1a49543a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#a29cec9afb2e54c810ba1f3c1a49543a8">More...</a><br /></td></tr>
<tr class="separator:a29cec9afb2e54c810ba1f3c1a49543a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:ae6c6c4c2dbc702b2717c3e7a3be83d04"><td class="memItemLeft" align="right" valign="top"><a id="ae6c6c4c2dbc702b2717c3e7a3be83d04"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDomain.html#ae6c6c4c2dbc702b2717c3e7a3be83d04">axisymmetric</a></td></tr>
<tr class="memdesc:ae6c6c4c2dbc702b2717c3e7a3be83d04"><td class="mdescLeft">&#160;</td><td class="mdescRight">true if axisymmetric, false otherwise <br /></td></tr>
<tr class="separator:ae6c6c4c2dbc702b2717c3e7a3be83d04"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9cac04e5bfe2aaa45437ba4bf7a4a995"><td class="memItemLeft" align="right" valign="top"><a id="a9cac04e5bfe2aaa45437ba4bf7a4a995"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDomain.html#a9cac04e5bfe2aaa45437ba4bf7a4a995">boxhi</a> [3]</td></tr>
<tr class="memdesc:a9cac04e5bfe2aaa45437ba4bf7a4a995"><td class="mdescLeft">&#160;</td><td class="mdescRight">Higher orthogonal box global bounds. <br /></td></tr>
<tr class="separator:a9cac04e5bfe2aaa45437ba4bf7a4a995"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83b46e1b53864e4c0ceaa96f3d9aa33b"><td class="memItemLeft" align="right" valign="top"><a id="a83b46e1b53864e4c0ceaa96f3d9aa33b"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDomain.html#a83b46e1b53864e4c0ceaa96f3d9aa33b">boxlo</a> [3]</td></tr>
<tr class="memdesc:a83b46e1b53864e4c0ceaa96f3d9aa33b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lower orthogonal box global bounds. <br /></td></tr>
<tr class="separator:a83b46e1b53864e4c0ceaa96f3d9aa33b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a333ccc4d2e6ee1667b6b23f338fd22"><td class="memItemLeft" align="right" valign="top"><a id="a4a333ccc4d2e6ee1667b6b23f338fd22"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDomain.html#a4a333ccc4d2e6ee1667b6b23f338fd22">created</a></td></tr>
<tr class="memdesc:a4a333ccc4d2e6ee1667b6b23f338fd22"><td class="mdescLeft">&#160;</td><td class="mdescRight">has the domain been created? <br /></td></tr>
<tr class="separator:a4a333ccc4d2e6ee1667b6b23f338fd22"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12bbbd0b6073ba888dc18b5cc77bcd59"><td class="memItemLeft" align="right" valign="top"><a id="a12bbbd0b6073ba888dc18b5cc77bcd59"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDomain.html#a12bbbd0b6073ba888dc18b5cc77bcd59">dimension</a></td></tr>
<tr class="memdesc:a12bbbd0b6073ba888dc18b5cc77bcd59"><td class="mdescLeft">&#160;</td><td class="mdescRight">1 == 1D, 2 == 2d, 3 == 3d <br /></td></tr>
<tr class="separator:a12bbbd0b6073ba888dc18b5cc77bcd59"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43a6f5545e59c96226c9891a2abcb28b"><td class="memItemLeft" align="right" valign="top"><a id="a43a6f5545e59c96226c9891a2abcb28b"></a>
class <a class="el" href="classGrid.html">Grid</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDomain.html#a43a6f5545e59c96226c9891a2abcb28b">grid</a></td></tr>
<tr class="memdesc:a43a6f5545e59c96226c9891a2abcb28b"><td class="mdescLeft">&#160;</td><td class="mdescRight">pointer to the common background grid (if using Updated Lagrangian) <br /></td></tr>
<tr class="separator:a43a6f5545e59c96226c9891a2abcb28b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d7ab2b44d87347a908d72a5fec4a1e1"><td class="memItemLeft" align="right" valign="top"><a id="a8d7ab2b44d87347a908d72a5fec4a1e1"></a>
tagint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDomain.html#a8d7ab2b44d87347a908d72a5fec4a1e1">np_total</a></td></tr>
<tr class="memdesc:a8d7ab2b44d87347a908d72a5fec4a1e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">total number of particles <br /></td></tr>
<tr class="separator:a8d7ab2b44d87347a908d72a5fec4a1e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42ba9d42798aeef32a8602eb49f0b684"><td class="memItemLeft" align="right" valign="top"><a id="a42ba9d42798aeef32a8602eb49f0b684"></a>
RegionCreatorMap *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDomain.html#a42ba9d42798aeef32a8602eb49f0b684">region_map</a></td></tr>
<tr class="memdesc:a42ba9d42798aeef32a8602eb49f0b684"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map of all the known region types. <br /></td></tr>
<tr class="separator:a42ba9d42798aeef32a8602eb49f0b684"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a036baa8a3dda482329a04db496735d1c"><td class="memItemLeft" align="right" valign="top"><a id="a036baa8a3dda482329a04db496735d1c"></a>
vector&lt; class <a class="el" href="classRegion.html">Region</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDomain.html#a036baa8a3dda482329a04db496735d1c">regions</a></td></tr>
<tr class="memdesc:a036baa8a3dda482329a04db496735d1c"><td class="mdescLeft">&#160;</td><td class="mdescRight">list of defined Regions <br /></td></tr>
<tr class="separator:a036baa8a3dda482329a04db496735d1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3dbced8e6704e8fc5f6569e5d703d614"><td class="memItemLeft" align="right" valign="top"><a id="a3dbced8e6704e8fc5f6569e5d703d614"></a>
vector&lt; class <a class="el" href="classSolid.html">Solid</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDomain.html#a3dbced8e6704e8fc5f6569e5d703d614">solids</a></td></tr>
<tr class="memdesc:a3dbced8e6704e8fc5f6569e5d703d614"><td class="mdescLeft">&#160;</td><td class="mdescRight">list of defined Solids <br /></td></tr>
<tr class="separator:a3dbced8e6704e8fc5f6569e5d703d614"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac27a2afb9a05ad9af66161d16e154470"><td class="memItemLeft" align="right" valign="top"><a id="ac27a2afb9a05ad9af66161d16e154470"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDomain.html#ac27a2afb9a05ad9af66161d16e154470">subhi</a> [3]</td></tr>
<tr class="memdesc:ac27a2afb9a05ad9af66161d16e154470"><td class="mdescLeft">&#160;</td><td class="mdescRight">Higher sub-box bounds on this proc. <br /></td></tr>
<tr class="separator:ac27a2afb9a05ad9af66161d16e154470"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8681cd28cb37c861e460dc85d0b445c"><td class="memItemLeft" align="right" valign="top"><a id="ab8681cd28cb37c861e460dc85d0b445c"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDomain.html#ab8681cd28cb37c861e460dc85d0b445c">sublo</a> [3]</td></tr>
<tr class="memdesc:ab8681cd28cb37c861e460dc85d0b445c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lower sub-box bounds on this proc. <br /></td></tr>
<tr class="separator:ab8681cd28cb37c861e460dc85d0b445c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a1387a468fd39343c0f149688faa0a13a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1387a468fd39343c0f149688faa0a13a">&#9670;&nbsp;</a></span>Domain()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Domain::Domain </td>
          <td>(</td>
          <td class="paramtype">class <a class="el" href="classMPM.html">MPM</a> *&#160;</td>
          <td class="paramname"><em>mpm</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Creator. </p>
<p>Initializes variables and generates the map of known region types (at compile time). </p>

</div>
</div>
<a id="a29cec9afb2e54c810ba1f3c1a49543a8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a29cec9afb2e54c810ba1f3c1a49543a8">&#9670;&nbsp;</a></span>~Domain()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">Domain::~Domain </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Destructor. </p>
<p>Destroys the lists of regions and solids (<a class="el" href="classDomain.html#a036baa8a3dda482329a04db496735d1c" title="list of defined Regions ">Domain::regions</a>, <a class="el" href="classDomain.html#a3dbced8e6704e8fc5f6569e5d703d614" title="list of defined Solids ">Domain::solids</a>) as well as the map of known region types. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a00fee929169dd75370ff3ae78b00ec18"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a00fee929169dd75370ff3ae78b00ec18">&#9670;&nbsp;</a></span>add_region()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Domain::add_region </td>
          <td>(</td>
          <td class="paramtype">vector&lt; string &gt;&#160;</td>
          <td class="paramname"><em>args</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a new region. </p>
<p>This function is the C++ equivalent to the region() user function.<br />
Syntax: region(name, type, type specific arguments)<br />
This function checks if the region name was already used.<br />
If not, it creates an entry in the vector <a class="el" href="classDomain.html#a036baa8a3dda482329a04db496735d1c" title="list of defined Regions ">Domain::regions</a> and calls Region::Region() </p>

</div>
</div>
<a id="af69b06bb2cf2b9adf2a87d719463b303"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af69b06bb2cf2b9adf2a87d719463b303">&#9670;&nbsp;</a></span>add_solid()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Domain::add_solid </td>
          <td>(</td>
          <td class="paramtype">vector&lt; string &gt;&#160;</td>
          <td class="paramname"><em>args</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a new solid. </p>
<p>This function is the C++ equivalent to the solid() user function.<br />
This function checks if the solid name was already used.<br />
If not, it creates an entry in the vector <a class="el" href="classDomain.html#a3dbced8e6704e8fc5f6569e5d703d614" title="list of defined Solids ">Domain::solids</a>. </p>

</div>
</div>
<a id="a0728a58f50841aac68f5870e1e9a2162"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0728a58f50841aac68f5870e1e9a2162">&#9670;&nbsp;</a></span>find_region()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int Domain::find_region </td>
          <td>(</td>
          <td class="paramtype">string&#160;</td>
          <td class="paramname"><em>name</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Finds the ID of a region. </p>
<p>This function checks if 'name' is already used for a region.<br />
If a region named 'name' exists, it returns its ID. It returns -1 otherwise. </p>

</div>
</div>
<a id="aadf91a0475543e41a080e57e6fc3f172"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aadf91a0475543e41a080e57e6fc3f172">&#9670;&nbsp;</a></span>find_solid()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int Domain::find_solid </td>
          <td>(</td>
          <td class="paramtype">string&#160;</td>
          <td class="paramname"><em>name</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Finds the ID of a solid. </p>
<p>This function checks if 'name' is already used for a solid.<br />
If a solid named 'name' exists, it returns its ID. It returns -1 otherwise. </p>

</div>
</div>
<a id="a38d1a6ff0bfa855944be7e626dcb736f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a38d1a6ff0bfa855944be7e626dcb736f">&#9670;&nbsp;</a></span>inside()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int Domain::inside </td>
          <td>(</td>
          <td class="paramtype">Eigen::Vector3d&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>inside = 1 if x,y,z is inside or on the boundary of the simulation domain. inside = 0 if x,y,z is outside and not on boundary of the simulation domain. </p>

</div>
</div>
<a id="a159a33a65aa69f795da9b16314a2f1f8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a159a33a65aa69f795da9b16314a2f1f8">&#9670;&nbsp;</a></span>inside_subdomain()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Domain::inside_subdomain </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>z</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Checks if the set of coordinates lies in the simulation domain. </p>
<p>inside = 1 if x,y,z is inside or on the boundary of this proc domain. inside = 0 if x,y,z is outside and not on boundary of this proc domain. </p>

</div>
</div>
<a id="ac6a8b8c9bdd38f2327648b376d66ff93"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac6a8b8c9bdd38f2327648b376d66ff93">&#9670;&nbsp;</a></span>inside_subdomain_extended()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Domain::inside_subdomain_extended </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>z</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>h</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Checks if the set of coordinates lies in this proc sub-domain. </p>
<p>inside = 1 if x,y,z is inside or on the boundary of this proc domain, extended by h. inside = 0 if x,y,z is outside and not on boundary of this proc domain, extended by h. </p>

</div>
</div>
<a id="a5bbee1320a6a46cf71e9fc61f6154eee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5bbee1320a6a46cf71e9fc61f6154eee">&#9670;&nbsp;</a></span>set_axisymmetric()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Domain::set_axisymmetric </td>
          <td>(</td>
          <td class="paramtype">vector&lt; string &gt;&#160;</td>
          <td class="paramname"><em>args</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Called when user calls <a class="el" href="classDomain.html#ae6c6c4c2dbc702b2717c3e7a3be83d04" title="true if axisymmetric, false otherwise ">axisymmetric()</a> </p>
<p>This function is the C++ equivalent to the <a class="el" href="classDomain.html#ae6c6c4c2dbc702b2717c3e7a3be83d04" title="true if axisymmetric, false otherwise ">axisymmetric()</a> user function.<br />
Syntax: axisymmetric(true) or axisymmetric(false)<br />
Sets <a class="el" href="classDomain.html#ae6c6c4c2dbc702b2717c3e7a3be83d04" title="true if axisymmetric, false otherwise ">Domain::axisymmetric</a> to true or false. Note that this variable is initialized as false. </p>

</div>
</div>
<a id="a2aa4da2d74f36cdcc6c045c220d9b44f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2aa4da2d74f36cdcc6c045c220d9b44f">&#9670;&nbsp;</a></span>set_dimension()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Domain::set_dimension </td>
          <td>(</td>
          <td class="paramtype">vector&lt; string &gt;&#160;</td>
          <td class="paramname"><em>args</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Called when user calls <a class="el" href="classDomain.html#a12bbbd0b6073ba888dc18b5cc77bcd59" title="1 == 1D, 2 == 2d, 3 == 3d ">dimension()</a> </p>
<p>This function is the C++ equivalent to the <a class="el" href="classDomain.html#a12bbbd0b6073ba888dc18b5cc77bcd59" title="1 == 1D, 2 == 2d, 3 == 3d ">dimension()</a> user function.<br />
Syntax: dimension(N, xmin, xmax, ymin, ymax, zmin, zmax, h) N: 1 for 1D, 2 for 2D, 3 for 3D.n xmin, xmax: domain boundaries in x.<br />
ymin, ymax: domain boundaries in y &ndash; Optional when N == 1.<br />
zmin, zmax: domain boundaries in z &ndash; Optional when N == 2.<br />
h: background grid cell size. Not optional if using Total Lagrangian, but value not used. </p>

</div>
</div>
<a id="a0b4a7134f0e0b9a1cc7653c837ca390b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0b4a7134f0e0b9a1cc7653c837ca390b">&#9670;&nbsp;</a></span>set_local_box()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Domain::set_local_box </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Determine the boundaries of this proc subdomain. </p>
<p>The boundaries of the domain attributed to this proc are stored in <a class="el" href="classDomain.html#ab8681cd28cb37c861e460dc85d0b445c" title="Lower sub-box bounds on this proc. ">Domain::sublo</a> and <a class="el" href="classDomain.html#ac27a2afb9a05ad9af66161d16e154470" title="Higher sub-box bounds on this proc. ">Domain::subhi</a> variables. </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="domain_8h_source.html">domain.h</a></li>
<li>domain.cpp</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="classDomain.html">Domain</a></li>
    <li class="footer">Generated on Tue Jul 7 2020 22:31:23 for Karamelo by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  </ul>
</div>
<!-- Matomo -->
<script type="text/javascript">
  var _paq = _paq || [];
  /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
  _paq.push(['trackPageView']);
  _paq.push(['enableLinkTracking']);
  (function() {
    var u="//stats.sylphide-consulting.com/matomo/";
    _paq.push(['setTrackerUrl', u+'piwik.php']);
    _paq.push(['setSiteId', '20']);
    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
    g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
  })();
</script>
<noscript><p><img src="//stats.sylphide-consulting.com/matomo/piwik.php?idsite=20&rec=1" style="border:0;" alt="" /></p></noscript>
<!-- End Matomo Code -->
</body>
</html>
